@keyframes pulse {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.LoadingContainer {
  align-items: center;
  display: flex;
  height: 100%;
  position: absolute;
  width: 100%;
  top: 0;
  z-index: 3;
  animation: pulse 1s ease-in-out 0s infinite alternate;

  &-exit {
    animation: none;
    opacity: 1;

    &-active {
      opacity: 0;
      transition: opacity 1s ease-in-out;

      // This adds a special case for when .LoadingContainer also has class
      // .completed-message, allowing the message to be viewed for 1s before
      // fading.
      @at-root .completed-message#{&} {
        transition: opacity 1s ease-in-out 1s;
      }
    }
  }
}

.LoadingContainerContent {
  padding: 1.3rem 3rem;
  border-radius: 50px;
  margin: 0 auto;
  color: #fff;
  text-align: center;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;

  h2 {
    padding: 10px 0;
    line-height: 29.52px;
    font-weight: 450;
  }
}
